home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / c / roboticsdp / include / libraries / minissc.h next >
C/C++ Source or Header  |  2000-02-28  |  3KB  |  62 lines

  1. #ifndef MINISSC_H
  2. #define MINISSC_H
  3.  
  4. /*
  5. **      $VER: minissc.h (15.01.2000)
  6. **
  7. **      minissc library definitions and structures
  8. **
  9. **      Copyright © 2000 Janne Peräaho.
  10. **            All Rights Reserved.
  11. */
  12.  
  13. #ifndef EXEC_LIBRARIES_H
  14. #include <exec/libraries.h>
  15. #endif /* EXEC_LIBRARIES_H */
  16.  
  17. /*---- Library related ------------------------------------------------------*/
  18. #define SSC_NAME    "minissc.library" /* Library name                        */
  19. #define SSC_VERSION 1                 /* Library version                     */
  20.  
  21. /*---- Maximum values -------------------------------------------------------*/
  22. #define SSC_MAX_SERVOS        8 /* Max number of servos per controller       */
  23. #define SSC_MAX_CONTROLLERS  32 /* Max number of Mini SSC II Controllers     */
  24. #define SSC_MAX_AVALUE      254 /* Max absolute servo value                  */
  25. #define SSC_MAX_VALUE       179 /* Max servo value (degrees)                 */
  26.  
  27. /*---- Controller states ----------------------------------------------------*/
  28. #define SSC_CTRLR_NA          0 /* Controller state: not available           */
  29. #define SSC_CTRLR_BUSY        1 /* Controller state: busy                    */
  30. #define SSC_CTRLR_READY       2 /* Controller state: ready                   */
  31. #define SSC_CTRLR_LOCKED      3 /* Controller state: locked                  */
  32.  
  33. /*---- Servo states ---------------------------------------------------------*/
  34. #define SSC_SERVO_NA          0 /* Servo state: Not available                */
  35. #define SSC_SERVO_BUSY        1 /* Servo state: Busy                         */
  36. #define SSC_SERVO_READY       2 /* Servo state: ready                        */
  37. #define SSC_SERVO_LOCKED      3 /* Servo state: locked                       */
  38.  
  39. /*---- Communication modes --------------------------------------------------*/
  40. #define SSC_COMMMODE_LOW      0 /* Comm speed: 2400 baud                     */
  41. #define SSC_COMMMODE_HIGH     1 /* Comm speed: 9600 baud                     */
  42.  
  43. /*---- Controller modes -----------------------------------------------------*/
  44. #define SSC_CTRLMODE_NARROW   0 /* Range of motion (Mini SSC): 90°           */
  45. #define SSC_CTRLMODE_WIDE     1 /* Range of motion (Mini SSC): 180°          */
  46.  
  47. /*---- Library --------------------------------------------------------------*/
  48. struct MiniSSCLibrary
  49. {
  50.     /* Compulsory library stuff */
  51.     struct Library lib_node;
  52.     APTR seg_list;
  53.     struct ExecBase *SysBase;
  54.  
  55.     /* minissc.library data */
  56.     BOOL initialized;          /* Library status: FALSE=not initialized, TRUE=initialized */
  57.     struct MsgPort *SerialMP;  /* Message port for serial communication */
  58.     struct IOExtSer *SerialIO; /* IO request structure for serial communication */
  59. };
  60.  
  61. #endif /* MINISSC_H */
  62.